The present invention relates generally to the field of robotic control systems. In particular, the present invention relates to the detection and resolution of resonance in a robotic system.
One useful application for resonance detection and resolution is in rapid prototyping of models or objects. A rapid prototyping system involves the making of three-dimensional objects based upon design data provided from a computer aided design (CAD) system. Examples of apparatus and methods for rapid prototyping of three-dimensional objects by depositing layers of solidifying material are described in Crump U.S. Pat. No. 5,121,329, Batchelder et al. U.S. Pat. No. 5,303,141, Crump U.S. Pat. No. 5,340,433, Batchelder U.S. Pat. No. 5,402,351, Batchelder U.S. Pat. No. 5,426,722, Crump et al. U.S. Pat. No. 5,503,785, and Abrams et al. U.S. Pat. No. 5,587,913, all of which are assigned to Stratasys, Inc., all of which are hereby incorporated by reference as if set forth fully herein.
A robotic system includes a move-compiler, a motor-controller, a tool, and a plurality of motors, such that the number of motors equals the number of axes in the robotic system. The controller has a plurality of outputs to connect to each of the plurality of motors. Each of the plurality of motors responds to an input from the controller by causing the tool to be translated or controllably positioned in a particular direction. The motors can be one of several different types of motors, such as a rotary or a linear step-type motor (i.e., a stepper or hybrid-stepper motor) or a DC servo motor.
The move-compiler receives, as an input, a list of vertices defining a complex path for the tool to navigate. The move-compiler uses feed-forward algorithms to establish velocities at which the controller may move the tool along the path and then outputs the vertex list and associated velocities to the controller. To then cause the tool to navigate the inputted path, the controller selectively outputs control signals to the motors. The vertex list, which generally consists of a series of vertices that, in turn, define a series of straight lines segments from one vertex to the next, is typically generated by a source, such as an interactive computer aided design (CAD) system. Although the present application applies to only vertex lists in which neighboring vertices are connected by straight-line segments, the vertex list may also consist of a series of vertices in which the segments between neighboring vertices are in the form of circular arcs, polynomial functions, splines, or nurbs.
A general goal of the robotic system is to cause the tool to quickly navigate the pre-defined path while keeping any displacement from the path by the tool, or following error, within an allowable error allowance. To accomplish this general goal, the controller must predict situations that may cause displacement of the tool and resolve those situations before they occur. While it more essential to predict these displacement-causing situations in open-loop robotic system, which are ones that does not require the use of positional or other types of feedback to control the positioning of the tool, than in closed-loop robotic systems, the predictions are nonetheless helpful in closed-loop systems, as well, since most closed-loop systems are capable of looking ahead to only a few vertices, while the move-compiler can look thousand of vertices ahead.
A common source of following error results from a change in the tool's momentum when the tool abruptly changes heading at a vertex while being driven from one line segment to the next. This change in momentum causes the tool to vibrate, or ring. Another common source of following error results from resonance that occurs when combined oscillations due to momentum changes at each of a series of vertices approaches a natural frequency of the tool itself. Both of these situations cause the tool to deviate from the predefined path and may cause the following error to exceed the maximum allowable error. There is therefore a need for a method of detecting and resolving this resonance that may result in the following error exceeding the maximum allowable error.